package org.hk.kg.ui;

import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import org.hk.kg.utils.StringUtils;

public class ParamsStack {
	private Map<String,List> params = new HashMap<String,List>(); 
	
	public void add(String key,String value)
	{
		if(!params.containsKey(key))
		{
			params.put(key, new ArrayList());
		}
		params.get(key).add(value);
	}
	
	public String getValue(String key)
	{
		List l = params.get(key);
		if(null == l || l.isEmpty())
		{
			return "";
		}
		return (String) l.get(0);
	}
	
	public Object[] getValues(String key,boolean allowEmpty)
	{
		if(params.get(key) == null)
		{
			return new Object[]{};
		}
		List paramHold = params.get(key),
			rlt = new ArrayList();
		for(Object obj : paramHold)
		{
			if(StringUtils.isEmpty(""+obj))
			{
				if(allowEmpty)
				{
					rlt.add(obj);
				}
			}
			else
			{
				rlt.add(obj);
			}
		}
		return rlt.toArray();
	}
	
	public Object[] getValues(String key)
	{
		return getValues(key, false);
	}

	public Map<String, List> getParams() {
		return params;
	}
	
	public Map<String,Object> getSimpleParams()
	{
		
		return StringUtils.parseParams(params);
	}
}

